package com.zhisheng.service.impl;

import com.zhisheng.service.FileService;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

/**
 * 创建者： 智晟全哥
 */
// 使用本地保存的方式完成文件上传
@Service
public class FileServiceImpl implements FileService {
    @Override
    public String saveFile(MultipartFile file) throws IOException {
        /*
            准备使用本地存储的方式完成对文件的保存
            1: 获取真实的文件名;(获取文件的后缀)
            2: 为了避免文件重名覆盖,需要随机生成一个不重复的文件名,配合上一步的后缀作为即将保存的文件名使用
            3: 真正的保存
         */
        String originalFilename = file.getOriginalFilename();
        // 1: 先找到文件名中的最后一个点的索引位置,然后再截取即可 或 直接通过点分割,获取数组的最后一个元素
//        int i = originalFilename.lastIndexOf(".");
//        String ext = originalFilename.substring(i>=0?i:0);

        String[] arr = originalFilename.split("\\.");
        String ext = arr[arr.length-1];
        // 2: 为了避免文件重名覆盖,需要随机生成一个不重复的文件名,
        String newName = UUID.randomUUID().toString()+"."+ext;
        File file1 = new File("D://a//" + newName);
        // 3: 真正的保存
        file.transferTo(file1);
        return file1.getAbsolutePath();
    }
}
